package net.huashitong.ssydt.provider.exam.service;


import net.huashitong.ssydt.exam.entity.SsExamTestRecord;
import net.huashitong.ssydt.exam.entity.vo.TestRecordsListInVO;

import java.util.List;

/**
 * @author <a href="mailto:yhy23456@163.com">huiyang.yu</a>
 * @since 2017.08.25
 */
public interface SsExamTestRecordService {
    /**
     * 根据 阶段，进度id,练习状态 获取对象
     *
     * @param stageNumber
     * @param testScheduleId
     * @param testState
     * @return
     */
    SsExamTestRecord getByStageAndScheduleIdAndState(Integer stageNumber, Long testScheduleId, String testState);

    void insertSelective(SsExamTestRecord record);

    void updateByPrimaryKeySelective(SsExamTestRecord record);

    SsExamTestRecord getById(Long recordId);

    /**
     * 根据testScheduleId筛选，并且id倒叙查列表
     *
     * @param testRecordsListInVO
     * @return
     */
    List<SsExamTestRecord> queryByTestScheduleId(TestRecordsListInVO testRecordsListInVO);

    /**
     * 根据 阶段，进度id 获取对象
     *
     * @param oldStageNumber
     * @param id
     * @return
     */
    SsExamTestRecord getByStageAndScheduleId(int oldStageNumber, Long id);

    /**
     * 统计已交卷数
     *
     * @return
     */
    int countSubmittedAll();

    /**
     * 统计小于或者等于 correctNumber 的个数
     *
     * @param correctNumber
     * @return
     */
    int countSubmittedByLessOrEqualsCorrectNumber(Integer correctNumber);
}
